<?php

/**
 * 說明 : 轉換字串
 * 
 * 使用方法 : 
 *
 *          use FS\Library\Convert;
 *          $name                   = Convert::to_db($name);
 *          $db_teacher['name']     = Convert::to_edit($db_teacher['name']);
 *          $_POST['name']          = Convert::post_to_js($_POST['name']);
 */

namespace FS\Library;

class Convert { 

	// 轉換成為可放入db的字串
	// -------------------------------------------
	public function to_db( $str ){ 

        $str = trim($str);

        // 將html tag 改掉
        // " --> &quot;
        // ' --> &#039;
        $str = htmlspecialchars($str,ENT_QUOTES);

        // 斷行改成 <br>
        $array_search = array( "\r\n", "\n" );
        $array_replace = array( "<br>", "<br>" );

        return str_replace($array_search, $array_replace, $str);
    }

    // 轉換成為可被編輯的字串
    // -------------------------------------------
    public function to_edit( $str ){ 

        // 將html tag 改回來
        // &quot; --> "
        // &#039; --> '
        $str = htmlspecialchars_decode($str,ENT_QUOTES);

        // <br>改成 斷行
        // ' 改成  \'  給javascript指定值使用 , 如 $("#textarea").val('<{$input}>')
        // " 改成  \"  給javascript指定值使用 , 如 $("#textarea").val("<{$input}>")
        $array_search = array( "<br>" ,"'" , "\"");
        $array_replace = array( "\\r\\n","\'", "\\\"" );

        return str_replace($array_search, $array_replace, $str);
    }

    // 把post來的資料轉換成為可放入js的字串 , 通常用於post之後出現錯誤時回填post資料到欄位
    // -------------------------------------------
    public function post_to_js( $str ){ 

        // 將html tag 改掉
        $str = htmlspecialchars($str,ENT_NOQUOTES);

        // 斷行改成可讓javascript使用的格式
        // ' 改成  \'  給javascript指定值使用 , 如 $("#textarea").val('<{$input}>')
        // " 改成  \"  給javascript指定值使用 , 如 $("#textarea").val("<{$input}>")
        $array_search = array( "\r\n"   , "\n" ,"'" , "\"");
        $array_replace = array( "\\r\\n", "\\n" ,"\'", "\\\"" );

        return str_replace($array_search, $array_replace, $str);
    }

}

?>
